home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / MicroCalc / MicroCalc.jar / CalcManager.class (.txt) < prev    next >
Encoding:
Java Class File  |  2001-11-07  |  3.1 KB  |  240 lines

  1. public class CalcManager {
  2.    public static StringBuffer currVal;
  3.    public static long currValL = MathFP.toFP("0");
  4.    public static boolean hasDecimal;
  5.    public static boolean decimal;
  6.    // $FF: renamed from: a int
  7.    private static int field_0 = 0;
  8.    public static boolean negative = false;
  9.    public static int[] numbers;
  10.    public static boolean error = false;
  11.    public static boolean isNewValue = true;
  12.    public static long memory = MathFP.toFP("0");
  13.  
  14.    public static void addCurrent(int var0) {
  15.       if (isNewValue && var0 == 10 && field_0 == 0) {
  16.          currVal.delete(0, currVal.length());
  17.          currVal.append("0");
  18.          currVal.append(".");
  19.          hasDecimal = true;
  20.          negative = false;
  21.          field_0 = 1;
  22.       } else if (field_0 < 8) {
  23.          if (var0 == 10 && !hasDecimal) {
  24.             currVal.append(".");
  25.             hasDecimal = true;
  26.             if (field_0 == 0) {
  27.                ++field_0;
  28.             }
  29.          } else if (field_0 == 0) {
  30.             if (var0 != 0) {
  31.                currVal.delete(0, currVal.length());
  32.                negative = false;
  33.                currVal.append(Integer.toString(var0));
  34.                ++field_0;
  35.             } else {
  36.                currVal.delete(0, currVal.length());
  37.                negative = false;
  38.                currVal.append(Integer.toString(var0));
  39.             }
  40.          } else if (var0 != 10) {
  41.             currVal.append(Integer.toString(var0));
  42.             ++field_0;
  43.          }
  44.       }
  45.  
  46.    }
  47.  
  48.    public static void clearCurrValue() {
  49.       currVal.delete(0, currVal.length());
  50.       currVal.append("0");
  51.       field_0 = 0;
  52.       hasDecimal = false;
  53.       negative = false;
  54.       isNewValue = true;
  55.       currValL = MathFP.toFP("0");
  56.    }
  57.  
  58.    public static void delLast() {
  59.       if (field_0 > 0 && currVal.length() > 0) {
  60.          if (currVal.charAt(currVal.length() - 1) != '.') {
  61.             --field_0;
  62.          }
  63.  
  64.          if (currVal.charAt(currVal.length() - 1) == '.') {
  65.             hasDecimal = false;
  66.          }
  67.  
  68.          currVal.deleteCharAt(currVal.length() - 1);
  69.          if (field_0 == 0) {
  70.             currVal.delete(0, currVal.length());
  71.             currVal.append("0");
  72.             negative = false;
  73.          }
  74.       } else if (field_0 == 0) {
  75.          currVal.delete(0, currVal.length());
  76.          currVal.append("0");
  77.          negative = false;
  78.       }
  79.  
  80.       if (field_0 == 1 && getCurrValueL() == MathFP.toFP("0")) {
  81.          field_0 = 0;
  82.          hasDecimal = false;
  83.          currVal.delete(0, currVal.length());
  84.          currVal.append("0");
  85.          currValL = MathFP.toFP("0");
  86.          negative = false;
  87.       }
  88.  
  89.       currValL = MathFP.toFP(getCurrValue());
  90.    }
  91.  
  92.    public static String getCurrValue() {
  93.       String var0 = currVal.toString();
  94.       int var1 = 0;
  95.       int var2 = var0.length();
  96.       if (var0.indexOf(".") >= 8) {
  97.          error = true;
  98.          return "0";
  99.       } else {
  100.          if (var2 < 8) {
  101.             var1 = var2;
  102.          } else if (var0.indexOf(".") < 8) {
  103.             if (var2 >= 9) {
  104.                var1 = 9;
  105.             } else {
  106.                var1 = 8;
  107.             }
  108.          }
  109.  
  110.          var0 = var0.substring(0, var1);
  111.          if (negative) {
  112.             var0 = "-" + var0;
  113.          }
  114.  
  115.          return var0;
  116.       }
  117.    }
  118.  
  119.    public static long getCurrValueL() {
  120.       String var0 = currVal.toString();
  121.       if (negative) {
  122.          var0 = "-" + var0;
  123.       }
  124.  
  125.       return MathFP.toFP(var0);
  126.    }
  127.  
  128.    public static String getCurrValueParse() {
  129.       String var0 = currVal.toString();
  130.       int var1 = 0;
  131.       int var2 = var0.length();
  132.       if (var0.indexOf(".") >= 8) {
  133.          error = true;
  134.          return "0";
  135.       } else {
  136.          if (var2 < 8) {
  137.             var1 = var2;
  138.          } else if (var0.indexOf(".") < 8) {
  139.             if (var2 >= 9) {
  140.                var1 = 9;
  141.             } else {
  142.                var1 = 8;
  143.             }
  144.          }
  145.  
  146.          var0 = var0.substring(0, var1);
  147.          return var0;
  148.       }
  149.    }
  150.  
  151.    public static void initCalc() {
  152.       isNewValue = true;
  153.       error = false;
  154.       hasDecimal = false;
  155.       negative = false;
  156.       currValL = MathFP.toFP("0");
  157.       currVal = new StringBuffer();
  158.       currVal.append("0");
  159.       numbers = new int[16];
  160.       int var0 = numbers.length;
  161.  
  162.       for(int var1 = 0; var1 < var0; ++var1) {
  163.          numbers[var1] = -1;
  164.       }
  165.  
  166.    }
  167.  
  168.    public static void parseCurrValue() {
  169.       StringBuffer var0 = new StringBuffer(getCurrValueParse());
  170.       int var1 = numbers.length;
  171.  
  172.       for(int var2 = 0; var2 < var1; ++var2) {
  173.          numbers[var2] = -1;
  174.       }
  175.  
  176.       int var3 = numbers.length - 1;
  177.  
  178.       for(int var4 = var0.length() - 1; var4 >= 0; --var4) {
  179.          if (var0.charAt(var4) == '.') {
  180.             numbers[var3] = 10;
  181.          } else if (var3 % 2 == 0) {
  182.             numbers[var3 - 1] = Character.digit(var0.charAt(var4), 10);
  183.             --var3;
  184.          } else {
  185.             numbers[var3] = Character.digit(var0.charAt(var4), 10);
  186.          }
  187.  
  188.          --var3;
  189.       }
  190.  
  191.    }
  192.  
  193.    public static void removeZeros() {
  194.       for(int var0 = currVal.length() - 1; currVal.charAt(var0) != '.'; --var0) {
  195.          if (currVal.charAt(currVal.length() - 1) == '0') {
  196.             currVal.deleteCharAt(currVal.length() - 1);
  197.          }
  198.       }
  199.  
  200.       if (currVal.charAt(currVal.length() - 1) == '.') {
  201.          currVal.deleteCharAt(currVal.length() - 1);
  202.       }
  203.  
  204.    }
  205.  
  206.    public static int setCurrValue(String var0) {
  207.       currVal.delete(0, currVal.length());
  208.       currVal.append(var0);
  209.       negative = false;
  210.       if (currVal.charAt(0) == '-') {
  211.          negative = true;
  212.          currVal.deleteCharAt(0);
  213.       }
  214.  
  215.       int var1 = currVal.length();
  216.  
  217.       for(int var2 = 0; var2 < var1; ++var2) {
  218.          if (currVal.charAt(var2) == '.') {
  219.             if (var2 > 8) {
  220.                error = true;
  221.                return 0;
  222.             }
  223.  
  224.             if (decimal && var2 >= 8) {
  225.                error = true;
  226.                return 0;
  227.             }
  228.  
  229.             if (decimal) {
  230.                return 7 - var2;
  231.             }
  232.  
  233.             return 1;
  234.          }
  235.       }
  236.  
  237.       return 0;
  238.    }
  239. }
  240.